/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package org.cip.esymons.tramite.beans;

import cip.util.PaginacionFiltro;
import java.util.ArrayList;
import java.util.List;
import org.cip.esymons.general.be.Cargo;
import org.cip.esymons.tramite.bc.CargoDelegate;

/**
 *
 * @author Freddy Infantes
 */
public class CargoController {

    private CargoDelegate delegado;
    private MiPaginador paginador;
    private Cargo cargo;

    public CargoController() {
        delegado = new CargoDelegate();
        paginador = new MiPaginador<Cargo>(null, 20);
        paginador.setFilter("");
    }

    /**
     * @return the delegado
     */
    public CargoDelegate getDelegado() {
        return delegado;
    }

    /**
     * @param delegado the delegado to set
     */
    public void setDelegado(CargoDelegate delegado) {
        this.delegado = delegado;
    }

    /**
     * @return the cargo
     */
    public Cargo getCargo() {
        return cargo;
    }

    /**
     * @param cargo the cargo to set
     */
    public void setCargo(Cargo cargo) {
        this.cargo = cargo;
    }

    /**
     * @return the paginador
     */
    public MiPaginador getPaginador() {
        return paginador;
    }

    /**
     * @param paginador the paginador to set
     */
    public void setPaginador(MiPaginador paginador) {
        this.paginador = paginador;
    }


    public final class MiPaginador<k> extends PaginacionFiltro {

        private String desc;

        public MiPaginador(String action, int cantidad) {
            super(action, cantidad);
        }

        @Override
        public int contar() throws Exception {
            try {
                return delegado.contarPaginadorCargo(desc);
            } catch (Exception e) {
                return 0;
            }
        }

        @Override
        public List listar() throws Exception {
            try {
                return delegado.paginadorCargo(getPaginador().getCantidadxPagina(), getPaginador().getPosicion(),desc);
            } catch (Exception e) {
                return new ArrayList();
            }
        }

        public String getDesc() {
            return desc;
        }

        public void setDesc(String valor) {
            try {
                if (!valor.equals(desc)) {
                    desc = valor;
                    reset();
                }
            } catch (Exception ex) {
                desc = null;
            }
        }
    }

    public String nuevo(){
        cargo = new Cargo();
        return "nuevo";
    }

    public String grabar(){
        delegado.create(cargo);
        getPaginador().reset();
        return "buscar";
    }

    public String buscar(){
        getPaginador().reset();
        return null;
    }

    public String actualizar(){
        delegado.edit(cargo);
        getPaginador().reset();
        return "buscar";
    }
}
